// 0.Number.EPSILON 是 JS中的最小精度
console.log(0.1 + 0.2 === 0.3); // false
console.log(Number.EPSILON); // 2.220446049250313e-16
function equal(num1, num2) {
  // if (Math.abs(num1 - num2) < Number.EPSILON) {
  //   return true;
  // } else {
  //   return false;
  // }
  return Math.abs(num1 - num2) < Number.EPSILON;
}
console.log(equal(0.1 + 0.2, 0.3)); // true

// 1.二进制与八进制表示方式
// 二进制
let b = 0b1010; // 10
// 八进制
let o = 0o777; // 511
// 十六进制
let x = 0xff; // 255
console.log(b, o, x);

// 2.Number.isFinite 校验一个数值是否为有限数
console.log(Number.isFinite(100)); // true
console.log(Number.isFinite(100 / 0)) // false
console.log(Number.isFinite(Infinity)); // false Infinity: 无穷大

// 3.Number.isNaN 校验一个数值是否为非数值, 是否为NaN
console.log(Number.isNaN(100)); // false

// 4.Number.parseInt Number.parseFloat 将字符串转换为整数
// 1) 先遇到数值, 后遇到非数值, 到第一个非数值前面截断, 保留连续数值
// 2) 先遇到非数值, 后遇到数值, 直至下一次非数值前面截断, 保留连续数值
// 3) 全部都是非数值, 返回NaN
console.log(Number.parseInt("520love1314")); // 520
console.log(Number.parseInt("love")); // NaN
console.log(Number.parseFloat("520love1314")); // 520

// 5.Number.isInteger 判断一个数是否为整数
console.log(Number.isInteger(5)); // true
console.log(Number.isInteger(2.5)); // false

// 6.Math.trunc 将数字的小数部分抹掉
console.log(Math.trunc(10.221)); // 10

// 7.Math.sign 判断一个数到底为 正数、负数、还是零
console.log(Math.sign(100)); // 1: 正数
console.log(Math.sign(-20)); // -1: 负数
console.log(Math.sign(0)); // 0
